home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / apuzzle / cmouse.cls next >
Text File  |  1999-04-14  |  1KB  |  43 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4. END
  5. Attribute VB_Name = "CMouse"
  6. Attribute VB_GlobalNameSpace = False
  7. Attribute VB_Creatable = True
  8. Attribute VB_PredeclaredId = False
  9. Attribute VB_Exposed = False
  10. Option Explicit
  11. ' Our Star API Functions
  12. Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
  13. Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
  14. Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
  15. Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
  16.  
  17. ' API Type for mouse pos
  18. Private Type POINTAPI
  19.     X As Long
  20.     Y As Long
  21. End Type
  22.  
  23. Property Get X() As Single
  24.     Dim tmpPnt As POINTAPI
  25.     GetCursorPos tmpPnt
  26.     X = CSng(tmpPnt.X)
  27.     xpos = X
  28. End Property
  29.  
  30. Property Get Y() As Single
  31.     Dim tmpPnt As POINTAPI
  32.     GetCursorPos tmpPnt
  33.     Y = tmpPnt.Y
  34.     ypos = Y
  35. End Property
  36.  
  37. ' Returns the caption of the window at the given points
  38. Function WindowOver(ByVal X As Single, ByVal Y As Single) As String
  39.     Dim sBuffer As String * 255, sLen As Long
  40.     sLen = GetWindowText(WindowFromPoint(CLng(X), CLng(Y)), sBuffer, 255)
  41.     WindowOver = Left$(sBuffer, sLen)
  42. End Function
  43.